function [c,ceq] = nlin2c_p(x)

%load remaining data
data_struct = load('data2c.mat');
segNP = double(data_struct.segNP);
Y = data_struct.Y;
upMat = data_struct.upMat;
os = double(data_struct.os);
uniqSeg = double(data_struct.uniqSeg);
prices = double(data_struct.prices);
segScale = double(data_struct.segScale);
segQ = double(data_struct.segQ);
uniqSeg_size = size(uniqSeg);
nNewSegments = uniqSeg_size(1);
prices_size = size(prices);
nProducts = prices_size(1);
[y1,y2,~]=ind2sub(size(upMat),find(upMat));

prices_lb = zeros(nProducts,nProducts,nNewSegments);
for i=1:nNewSegments
     prices_lb(y1(i),y2(i),i) = prices(y1(i));
end

u = zeros(nNewSegments,3+nProducts);
usub = zeros(nNewSegments,nProducts);
for i = 1:nNewSegments
    u(i,:) = [uniqSeg(i,1)+1,y1(i),y2(i),os(uniqSeg(i,3)+1,:)];
    usub(i,:) = os(uniqSeg(i,3)+1,:);
    usub(i,y2(i)) = 0;
end

ceq = [];
for i = 1:nNewSegments
    c(i) = x(i) - Y(y1(i),y2(i),i)*(1-((exp(segNP(u(i,1)))+u(i,4)*exp(1/segScale(u(i,1))*(segQ(1,u(i,1))-prices(1)))...
                               +u(i,5)*exp(1/segScale(u(i,1))*(segQ(2,u(i,1))-prices(2)))...
                               +u(i,6)*exp(1/segScale(u(i,1))*(segQ(3,u(i,1))-prices(3)))...
                               +u(i,7)*exp(1/segScale(u(i,1))*(segQ(4,u(i,1))-prices(4)))...
                               +u(i,8)*exp(1/segScale(u(i,1))*(segQ(5,u(i,1))-prices(5)))...
                               +u(i,9)*exp(1/segScale(u(i,1))*(segQ(6,u(i,1))-prices(6))))/...
                               (exp(1/segScale(u(i,1))*(segQ(u(i,3),u(i,1))-(prices(u(i,2))+x(nNewSegments+1)*(prices(u(i,3))-prices(u(i,2))))))...
                               +exp(segNP(u(i,1)))+usub(i,1)*exp(1/segScale(u(i,1))*(segQ(1,u(i,1))-prices(1)))...
                               +usub(i,2)*exp(1/segScale(u(i,1))*(segQ(2,u(i,1))-prices(2)))...
                               +usub(i,3)*exp(1/segScale(u(i,1))*(segQ(3,u(i,1))-prices(3)))...
                               +usub(i,4)*exp(1/segScale(u(i,1))*(segQ(4,u(i,1))-prices(4)))...
                               +usub(i,5)*exp(1/segScale(u(i,1))*(segQ(5,u(i,1))-prices(5)))...
                               +usub(i,6)*exp(1/segScale(u(i,1))*(segQ(6,u(i,1))-prices(6))))));
end
end